package com.salt.patterns.observer;

import java.util.ArrayList;
import java.util.List;

/**
 * @author Kuang
 * @date 2021年04月19日 下午 17:16
 */
public class Subject {
    /**
     * 观察者们
     */
    private final List<AbstractObserver> observers = new ArrayList<>();
    private String str;


    public String getStr() {
        return str;
    }

    public void setState(String str) {
        this.str = str;
        notifyAllObservers();
    }

    public void attach(AbstractObserver observer) {
        observers.add(observer);
    }

    public void notifyAllObservers() {
        for (AbstractObserver observer : observers) {
            observer.update();
        }
    }
}
